package br.com.ac.fatureweb.model;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

import br.com.ac.fatureweb.utilitary.Model;

@Entity
@Table(name = "PERFIL")
@SequenceGenerator(name = "SEQ_PERFIL", sequenceName = "SEQ_PERFIL", allocationSize = 1, initialValue = 1)
public class Perfil extends Model {

	/**
	 *
	 */
	private static final long serialVersionUID = 1222923741228079728L;

	@Id
	@GeneratedValue(generator = "SEQ_PERFIL", strategy = GenerationType.SEQUENCE)
	@Column(name = "ID")
	private Long id;

	@Column(name = "NOME")
	private String nome;

	@OneToMany(cascade = CascadeType.ALL, mappedBy = "perfil")
	private List<PerfilAcao> lstPerfilAcao;

	@Transient
	private List<PerfilAcao> lstPerfilAcaoExcluir;

	public Perfil(Long id, String nome) {
		super();
		this.id = id;
		this.nome = nome;
	}

	public Perfil() {
		super();
	}

	@Override
	public Long getId() {
		return id;
	}

	@Override
	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public List<PerfilAcao> getLstPerfilAcao() {
		return lstPerfilAcao;
	}

	public void setLstPerfilAcao(List<PerfilAcao> lstPerfilAcao) {
		this.lstPerfilAcao = lstPerfilAcao;
	}

	public List<PerfilAcao> getLstPerfilAcaoExcluir() {
		return lstPerfilAcaoExcluir;
	}

	public void setLstPerfilAcaoExcluir(List<PerfilAcao> lstPerfilAcaoExcluir) {
		this.lstPerfilAcaoExcluir = lstPerfilAcaoExcluir;
	}
}
